#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
#include <stdlib.h>

int main()
{
    // wait 等待子进程的状态发生变化
    // 在父进程调用wait函数，父进程会在子进程结束之后才会结束，避免子进程成为孤儿进程
    // 在子进程调用wait函数，如果子进程下面没有子进程则wait返回-1
    printf("main\n");

    pid_t pid = fork();
    if (pid == 0)
    {
        for (int i = 0; i < 5; i++)
        {
            sleep(1);
            printf("child\n");
        }
    }
    else if(pid > 0)
    {
        printf("parent\n");
        int status;
        wait(&status); // status 存储子进程的退出状态 正常退出状态码为0
        printf("status = %d fork->pid = %d\n", status,pid);
    }

    return 0;
}